﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WXFramework.Model
{
    public class WXUserInfo
    {
        /// <summary>
        /// 员工UserID。对应管理端的帐号，企业内必须唯一。长度为1~64个字符
        /// </summary>
        public string userid { get; set; }

        /// <summary>
        /// 成员名称。长度为0~64个字符
        /// </summary>
        public string name { get; set; }

        /// <summary>
        /// 成员所属部门id列表。注意，每个部门的直属员工上限为1000个
        /// </summary>
        public List<int> department { get; set; }

        /// <summary>
        /// 职位信息。长度为0~64个字符
        /// </summary>
        public string position { get; set; }

        /// <summary>
        /// 手机号码。企业内必须唯一，mobile/weixinid/email三者不能同时为空
        /// </summary>
        public string mobile { get; set; }

        /// <summary>
        /// 性别。gender=0表示男，=1表示女。默认gender=0
        /// </summary>
        public int gender { get; set; }

        /// <summary>
        /// 办公电话。长度为0~64个字符。必须企业内唯一
        /// </summary>
        public string tel { get; set; }

        /// <summary>
        /// 邮箱。长度为0~64个字符。企业内必须唯一
        /// </summary>
        public string email { get; set; }

        /// <summary>
        /// 微信号。企业内必须唯一
        /// </summary>
        public string weixinid { get; set; }

        /// <summary>
        /// 扩展属性。扩展属性需要在WEB管理端创建后才生效，否则忽略未知属性的赋值
        /// </summary>
        public WXUserInfoextattr extattr { get; set; }

        public string avatar { get; set; }

        /// <summary>
        /// 启用/禁用成员。1表示启用成员，0表示禁用成员
        /// </summary>
        public int enable { get; set; }

        /// <summary>
        /// 关注状态: 1=已关注，2=已冻结，4=未关注
        /// </summary>
        public int status { get; set; }

        public WXUserInfo()
        {
            this.extattr = new WXUserInfoextattr();
        }
    }


}

public class WXUserInfoextattr
{
    public ICollection<WXAttr> attrs {get;set;}

    public WXUserInfoextattr ()
	{
        this.attrs = new List<WXAttr>();
	}
}

public class WXAttr
{
    public string name {get;set;}

    public string value {get;set;}
}
